Users may interact with applications through user interfaces. The user interfaces may include various components for changing the state of the application. A user interface may, for example, provide numerous options for navigating the interface and/or processing data. Often, user interaction with a user interface causes the interface to change state. For example, a user selecting a button or other element may cause the user interface to change from a current display screen to a new display screen having different options available to the user.
Many applications are resource intensive in the sense that changes to an interface's state may cause a non-trivial use of computing resources. As one example, many applications utilize web-based technologies. A user may interact with a browser or other application executing on a client device that communicates with a server device. The server device may respond to user requests with information that allows the user's client-side application to update appropriately. The server itself may contact other servers, such as database servers, to obtain information needed to properly respond to the client requests. As a result, resource intensive applications often tax the various related computer systems. From the client's perspective, delays may be noticed where the client has to wait for a server response and/or where the client needs to process data before a transition to a new user interface state can be completed. Delays and other issues may be exacerbated in various environments, such as in environments where multiple clients simultaneously interact with a server.